In distributed networks or systems having many connected nodes or processes, the ability to share files, documents, and information between nodes of the network is important.
There are several conventional ways that users may share files and documents, including posting the documents on web servers, where access may be open to anyone or restricted to pre-approved users by a password protection system. The problem with this system is two-fold. First, it typically requires a third party, such as a web-hosting service, to maintain the documents on a server computer, which generally requires an initial set up fee and recurring maintenance fees. Second, the involvement of a third party inherently reduces the user's control over the files or documents stored on the web server.
Another way to share files among users of a distributed network is for a user who wishes to share files (“the publisher”) with another user (“the accesser”) to provide the accesser with his or her machine location, and a path name on the machine where the documents are stored. The accesser accesses the publisher's documents by entering the machine location and path name into a web browser or other access program to reach the publisher's machine. In this situation, the publisher's machine typically provides a security system that permits access only to approved accessing users.
In order to enter the machine location, the user must know the same. One method of entering the machine location involves entering an Internet Protocol (“IP”) address. An “IP Address” is a unique string of numbers that identifies a computer on the Internet. IP addresses contain 32-bits, organized into four sets of three-digit numbers between 0 and 255, which are separated by periods, like this: 123.123.023.002. All machines on the Internet must have an IP address and no two computer systems may have the same IP address at the same time. IP addresses may be dynamic or static. A static IP address is one that is permanently assigned to a computer system—it is the only IP address used by that system. A dynamic IP address is one that is assigned on the fly from a group of IP addresses assigned to an organization, for example. Although no IP address can be used for two computer systems at the same time, each computer system may use a multitude of different IP addresses. IP addresses are not user-friendly because they contain only numbers with no readily understandable meaning. For this reason, it is nearly impossible for people to remember their own IP addresses, let alone the IP addresses of machines belonging to other people.
The Domain Name System (DNS) makes it easier to find machine locations by allowing a familiar string of letters (the “domain name”) to be used instead of the arcane IP address. So instead of remembering and typing 66.201.69.207, users can type www.microsoft.com. Domain names are also used for reaching e-mail addresses and for other Internet applications. The domains names are resolved, i.e., converted from the domain name to the IP address, through a service hosted on a number of servers located throughout the Internet. However, DNS has at least two limitations. First, it requires the use of third party equipment, the DNS servers, to handle the name resolution. Second, it is not very secure because almost anyone can determine a specific machine name and location for any computer system. Therefore, the conventional DNS is not a very effective method for publishing resources on a computer system.
Another way to get a machine location is to use a public key. Public keys are associated with a particular person and consist of a long string of bytes, for example 32 numbers and letters, such as KP12JSP2345L1298FE23KLKSERQOC38S. Public keys are typically used to enable users of an unsecure public network, such as the Internet, to securely and privately exchange data through the use of a public and a private cryptographic key pair that is obtained and shared through a trusted authority. Public key cryptography is the most common method on the Internet for authenticating a message sender or encrypting a message. Public keys may be obtained in a number of ways. For example, a public key may be created and assigned by an operating system when a person creates a user account on a computer system. Alternatively, in public key cryptography, a public key and private key are created simultaneously using the same algorithm by a certificate authority.
Public keys are connected to machine locations through use of the peer name resolution protocol (“PNRP”), which stores each person's public key with their current location in a publicly available table or some other searchable data structure. Thus, if you know a person's public key, one may use PNRP to determine its associated current machine location, which is usually in the form of an IP address. However, like an IP address, a public key is a string of many bits that have no meaning and even harder to memorize than the IP address itself.
Yet another way to determine a machine location involves receiving (such as through email) a link that incorporates or contains the machine location. When the link is selected, the browser automatically enters the IP address or public key associated with the link into the browser. Unfortunately however, an accessing principal would need to save the email and find and open it every time the accessing node wanted to access the publishing node's resources. This is time consuming, cumbersome, and wastes storage capacity on the accessing machine.
The invention may be implemented as a computer process, a computing system or as an article of manufacture such as a computer program product or computer readable media. The computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process.
These and various other features as well as advantages, which characterize the present invention, will be apparent from a reading of the following detailed description and a review of the associated drawings.